/*--------------------------------------------------------------
 * File: Driver_spi.h 编码类型：C语言  UTF-8
 * Author WRS (1352509846@qq.com)
 * 功能: STM32F411的spi驱动
 * Version 0.1
 * Date 2021-10-06 
 * 
 * @copyright Copyright (c) 2021
 * 
----------------------------------------------------------------*/

#ifndef __SPI_H_
#define __SPI_H_
#include "stm32f4xx.h"
#include "stm32f4xx_conf.h"
#include "sys.h"
#include "debug.h"

#define TIMEOUT 1000             //超时时间

/*--------------------------------------------------------------
 * 功能: 初始化SPI1的驱动
 * 片选引脚使用GPIOA4引脚
----------------------------------------------------------------*/
void spi1_init(void);

/*--------------------------------------------------------------
 * 功能: 初始化SPI2的驱动
 * 片选引脚使用GPIO_B12引脚
----------------------------------------------------------------*/
void spi2_init(void);

/*--------------------------------------------------------------
 * 功能: 初始化SPI3的驱动
 * 单线发送模式，控制LCD屏幕
----------------------------------------------------------------*/
void spi3_init(void);

/*--------------------------------------------------------------
 * 功能: SPI发送和读取数据
 * 由于SPI是全双工的，所以发送的同时就伴随着数据的接收
 * 参数: spix SPI接口
 * 参数: data 数据
 * 返回值: u8 读取到的数据
----------------------------------------------------------------*/
u8 spix_read_write_byte(SPI_TypeDef* spix, u8 data);

/*--------------------------------------------------------------
 * 功能: SPI3发送一个字节byte
 * 主要用于LCD屏幕
 * 参数: Byte 要发送的数据
----------------------------------------------------------------*/
u8 SPI3_Send_Byte(u8 Byte);


#endif

